package com.jqq.inner_;

public class StaticInnerClass {
    public static void main(String[] args) {
        Outer09 outer09 = new Outer09();
        outer09.show();

        //外部其他类访问静态内部类
        //1.因为静态内部类，是可以通过类名直接访问（前提是满足访问权限）
        Outer09.Inner09 inner09 = new Outer09.Inner09();
        inner09.say();
        //2.编写一个方法 返回静态内部类的对象实例
        Outer09.Inner09 inner091 = outer09.getInner09();
        inner091.say();
        //3.编写一个静态方法，直接通过外部类名.方法获取对象实例
        Outer09.Inner09 inner0911 = Outer09.getInner091();
    }
}
class Outer09{
    private static int n1 = 99;
    private static String name = "张三";
    //静态内部类
    //可以添加访问修饰符
    public static class Inner09{
        private int n1 = 66;
        public void say(){
            //可以访问外部类的所有静态成员
            //不能直接访问外部类的非静态成员
            System.out.println(n1+" "+name);
            //访问外部类成员（只能是静态的），所以不要this
            //外部类名.静态成员名
            System.out.println(Outer09.n1+" "+name);
        }
    }

    public void show(){
        new Inner09().say();
    }

    public Inner09 getInner09(){
        return new Inner09();
    }

    public static Inner09 getInner091(){
        return new Inner09();
    }
}